在android中有很多物件內有提供listener可以使用,當自己創建一個全新的物件時也可以自己自訂符合需求的監聽事件,今天要來說明自訂物件的Listener創建方法。
首先創建一個自訂view,在裡面創建一個interface這個將用來創建我們的方法名稱,之後在下方創建一個setOnSwipeListener這樣便完成初步的設定。
public class SwipeView extends View {
    private OnSwipeListener onSwipeListener;
    public SwipeView(Context context) {
        super(context);
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return false;
    }
    public interface OnSwipeListener {
        void startEvent(SwipeView swipeView) ;
    }
    public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
        this.onSwipeListener = onSwipeListener;
    }
}
在來設置我們要何時觸發事件,在onTouchEvent中放上點擊事件,如果要在其中做設定只要使用onSwipeListener便能夠成功設定我們需要觸發的時機,現在只要點擊這個view便會觸發自訂的監聽事件。
public class SwipeView extends View {
    private OnSwipeListener onSwipeListener;
    public SwipeView(Context context) {
        super(context);
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            onSwipeListener.startEvent(SwipeView.this);
            return true;
        }
        return false;
    }
    public interface OnSwipeListener {
        void startEvent(SwipeView swipeView) ;
    }
    public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
        this.onSwipeListener = onSwipeListener;
    }
}
只要有用到swipeView時便能設置我們剛才的監聽事件。
swipeView.setOnSwipeListener(new SwipeView.OnSwipeListener() {
            @Override
            public void startEvent(SwipeView swipeView){
              
            }
        });
成功看到剛才創建的監聽事件的,這樣子便能夠自己自訂出所需要的Listener。